Non-volatile memories, such as flash memories, are widely used for storing data and instructions in computing devices. A flash memory typically includes one or more memory banks of physical sectors having memory cells arranged in rows and columns. Some semiconductor devices, such as microcontrollers, may include a flash memory that is embedded therein on the same semiconductor chip.
It is desirable to provide embedded flash memories with row redundancy for post-manufacture correction of manufacturing defects, but implementing such row redundancy in an efficient manner is not trivial. For example, in some applications the amount of the required row redundancy is the size of one quarter of a physical sector. However, adding such small amount of flash memory to each memory bank requires the use of an isolated physical sector having a small non-standard size, but this incurs a large overhead in terms of die area. This is because X-decoders and Y-decoders of normal size are necessary to perform memory operations on the small non-standard physical sector, and such normal X-decoders and Y-decoders occupy a die area of the same size as the decoders needed to operate the normal physical sectors.